package com.story.modular.app.dao;

import com.baomidou.mybatisplus.plugins.Page;
import com.story.common.persistence.model.AudioDetail;
import com.story.common.persistence.model.VedioCategory;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
/**
 * <p>
  * 视频分类表 Mapper 接口
 * </p>
 *
 * @author yangbo
 * @since 2017-12-19
 */
public interface VedioCategoryDao{

    /**
     * 得到banner下的专辑总数
     * @param bannerId
     * @return
     */
    int countCategoryByBanner(@Param("bannerId") Integer bannerId);

    /**
     * 得到专辑列表
     * @param condition
     * @return
     */
    List<Map<String,Object>> getCategoryList(@Param("condition") String condition,
                                             @Param("bannerId") Integer bannerId,
                                             @Param("type") Integer type);

    /**
     * 根据id查询专辑信息
     * @param id
     * @return
     */
    Map<String,Object> getCategoryById(@Param("id") Integer id);

    /**
     *通过名称统计数量
     * @param name
     */
    int countByName(@Param("name") String name);

    /**
     * 通过名字获得id
     * @param name
     * @return
     */
    Integer getIdByName(@Param("name") String name);

    /**
     * 得到所有的专辑
     * @return
     */
    List<Map<String,Object>> getAllCategory(@Param("resType") Integer resType);
    List<Map<String,Object>> appGetQueryList(@Param("page") Page<VedioCategory> page,
                                             @Param("fenlei") Integer fenlei,
                                             @Param("age") Integer age,
                                             @Param("price") Integer price,
                                             @Param("zonghe") Integer zonghe,
                                             @Param("resType") Integer resType
                                             );
    List<Map<String,Object>> appGetUserQueryList(@Param("page") Page<VedioCategory> page,
                                             @Param("user") String user,
                                             @Param("type") Integer type,
                                             @Param("resType") Integer resType
                                             );

    List<Map<String,Object>> appGetQueryListZhuanjis(@Param("page") Page<VedioCategory> page,
                                             @Param("zhuanjis") String zhuanjis,
                                             @Param("age") Integer age,
                                             @Param("price") Integer price,
                                             @Param("zonghe") Integer zonghe,
                                             @Param("resType") Integer resType
                                             );

    /**
     * 得到一个栏目下的专辑列表
     * @param bannerId
     * @param resType
     * @return
     */
    List<Map<String,Object>> getCateInBanner(@Param("bannerId") Integer bannerId,@Param("resType") Integer resType);

    /**
     * 批量修改所属栏目
     * @param ids
     * @param id
     */
    void batchUpBannerId(@Param("ids") List<Integer> ids,@Param("bannerId") Integer id);

    /**
     * 批量修改所属栏目
     * @param ids
     * @param id
     */
    void batchUpdateBannerCate(@Param("ids") List<Integer> ids,@Param("bannerId") Integer id);

    /**
     * 批量上传专辑
     * @param categoryIdList
     */
    void batchDeleteById(@Param("categroyIdList") List<Integer> categoryIdList);

    /**
     * 得到专辑名称
     * @param cateIds
     * @return
     */
    String getCateNameById(@Param("cateIds") List<Integer> cateIds);
}